#ifndef AUDIOCLIP_H
#define AUDIOCLIP_H

#include "core/Object.h"
#include <SDL/SDL_mixer.h>
#include <typeinfo>

namespace SolidityEngine{

class AudioClip : public Object
{

    public:
        AudioClip();
        virtual ~AudioClip();

        Mix_Chunk* GetChunk();
        const Mix_Chunk* GetChunk() const;

        float GetClipLength();
        float GetClipLength() const;

    protected:
        Mix_Chunk* _clip;

    private:
        virtual AudioClip* _Clone(){
            return new AudioClip(*this);
        };
        virtual std::string _Serialize(){
            return std::string("Serialize not yet implemented for: ")+std::string(typeid(*this).name());
        };


};

};

#endif // AUDIOCLIP_H
